10
תגובות

md5() Function

פתח itamarhadad ,
הציעו לי פה שההכנסה למסד של הססמאות תהיה מוצפנת
אבל אני עדיין לא מבין מה לעשות עם זה בדיוק
כל פעם שמשתמש נכנס אני עושה md5() על הPOST.
ואז אני מכניס את זה מומר למסד..
ואז איך אני בדיוק ממיר את זה בחזרה לרגיל..?

אלא אם כן אני משתמש בקידוד הזה כל הזמן ומשווה סיסמאות מקודדות..

ובכלל אם אפשר להמיר את זה בחזרה אז מה ההבדל אם יפרצו לי למסד וימירו את הסיסמאות..??

10 תשובות

avatar ענה razand ב 19 ליוני 2012 #

זהו שאי אפשר להמיר את זה בחזרה.
פשוט שרוצים להתחבר צריך להצפין את הסיסמה שהמשתמש הכניס ולהשוות למסד.

avatar ענה Y_Y ב 19 ליוני 2012 #

ההבדל הוא שאתה לא עושה MD5 על סיסמא ..
אתה עושה MD5 ומצרף לסיסמא מחזורת שרק אתה יודע..

אז שיפרצו לך שיקחו את הסיסמאות הן לא יהיו שוות כלום כי אי אפשר לעשות לשחזר אותם...

אז שמישהו עושה לוגין תשווה את הסיסמא אחרי הוספת המחרוזת והMD5 לDB...

יום טוב

avatar ענה iiddaannyy ב 19 ליוני 2012 #

לא ממירים את זה בחזרה.
כתבתי לך את זה בשאלה הקודמת:
"היא הופכת את מה שאתה מכניס לה למחרוזת תווים, חסרת משמעות, בעל אורך קבוע לכל קלט ושאינה ניתנת להפיכה (לפחות לא בצורה מעשית)."

avatar ענה itamarhadad ב 19 ליוני 2012 #

אבל זה לא הגיוני שאי אפשר להמיר בחזרה..
ישנו תהליך קבוע שהוא מעביר על המחרוזת כי עובדה שmd5() על X תמיד יהיה שווה לmd5() על X

בכל מקרה מה אני ייעשה בשכחתי סיסמא..??
אני חייב את המקורית

avatar ענה razand ב 19 ליוני 2012 #

אתה שולח להם קישור למייל ואז הם צריכים לבחור סיסמה חדשה.

avatar ענה משתמש_243710 ב 19 ליוני 2012 #

אפשר להמיר בחזרה, תראה את מה שרשמתי בסוגריים, זה קשה מאוד מבחינה מעשית.
תקרא את זה.
וב'שכחתי סיסמה' פשוט תשלח הודעה למייל של המשתמש עם קישור ייחודי, כזה שאי אפשר לנחש.
כשנכנסים לאותו קישור אתה נותן להם לבחור סיסמה חדשה.

avatar ענה Shareed2k ב 19 ליוני 2012 #

//get the username and password
    $username = $_POST['username'];
    $password = md5(sha1($_POST['password']));
if ( isset( $_POST['login'] ) ) {

    // User has posted the login form: attempt to log the user in

  ////////////
  $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
  $sql = "SELECT * FROM user WHERE username='" . mysql_real_escape_string($username) . "'";
  foreach ($conn->query($sql) as $row)
  $conn = null;
  if($row['username'] == $username && md5($row['password']) == $password){

      // Login successful: Create a session and redirect to the admin homepage
      $_SESSION['username'] = $row['username'];

avatar ענה iiddaannyy ב 20 ליוני 2012 #

@Shareed2k
1. לא עושים דברים כאלה, לא משלבים הצפנות.
2. את ההצפנה עדיף לעשות בשאילתה עצמה.

avatar ענה razand ב 20 ליוני 2012 #

למה לעשות הצפנה בתוך הצפנה?

avatar ענה Shareed2k ב 21 ליוני 2012 #

למה לא ?